Computer gaming has been moving away from the traditional video game console towards cloud-based gaming. Cloud-based gaming is a type of online gaming that allows direct and on-demand streaming of games onto a computer through the use of a thin client. Certain game software and game data is stored on a remote server and is streamed directly to user devices accessing the server through the client. Cloud-based gaming systems can be characterized as a combination of the following key components: a powerful game rendering engines and video encoding engines at remote data center sites, a resource-limited (e.g., limited computing/rendering power with video decoding engine) thin client (e.g., mobile phone, portable game device, tablet computer, consumer electronic device, etc.), and high bandwidth and reliable networks. Playing games on cloud systems has mass appeal and provides gamers with a brand new game playing experience.
A major hurdle in developing seamless cloud gaming systems is latency. Unlike console based gaming, which is locally equipped with a high performance computing machine and a powerful graphic rendering engine, cloud based gaming systems are often technically restricted by long latency. Long latency can largely be attributed to (1) processing delays by graphics rendering, (2) processing delays by video encoding, and (3) network round trip traffic delays.
From the viewpoint of video encoding, delays are often caused by the computationally intensive and GPU-unfriendly motion search, which is widely used in modern video technology.
It is within this context that embodiments of the present invention arise.